iT邦幫忙

2024 iThome 鐵人賽

DAY 9
0
Python

30天Python資料分析挑戰:從基礎到視覺化系列 第 9

Day 09: 資料清理 - 處理資料中的異常值與重複值

  • 分享至 

  • xImage
  •  

Day 09: 資料清理 - 處理資料中的異常值與重複值

以下有任何問題,歡迎直接私訊我的IG
點我私訊

在資料分析過程中,異常值和重複值可能會影響我們的分析結果。因此,在進行資料分析之前,發現並處理這些異常情況是非常重要的。今天我們將學習如何檢測和處理資料中的異常值與重複值。

首先,請在同一個資料夾中開啟新的 Google Colab 筆記本,名稱為 iris_abnormal。在第一段程式碼中,請輸入以下內容:
https://ithelp.ithome.com.tw/upload/images/20240923/20140380dSHua7jgqc.png

from google.colab import drive
drive.mount('/content/drive/')
import pandas as pd

# 讀取 CSV 檔案
iris_df = pd.read_csv('/content/drive/MyDrive/iris/iris_dataset.csv')
print(iris_df.head())

1. 檢測資料中的重複值

重複值是指資料集中出現兩次或更多次的完全相同的數據行。這些重複的數據可能會導致分析結果出現偏差,因此需要在分析之前進行處理。我們可以使用 duplicated() 函數來檢測重複值,並使用 drop_duplicates() 來刪除它們:

# 檢查是否有重複的資料行
duplicates = iris_df.duplicated()
print("重複資料行:")
print(iris_df[duplicates])

# 刪除重複的資料行
iris_no_duplicates = iris_df.drop_duplicates()
print("刪除重複值後的資料集:")
print(iris_no_duplicates.head())

https://ithelp.ithome.com.tw/upload/images/20240923/20140380TXMfBLluy5.png
這段程式碼將檢查資料集中的重複行,並顯示所有重複的資料行。接著,它會刪除重複的資料行,並顯示刪除重複值後的資料集。

2. 檢測資料中的異常值

異常值是指遠離其他資料點的極端值,這些異常值可能是由於資料輸入錯誤或其他原因造成的。異常值的處理方式有時會根據具體情況選擇刪除或保留。檢測異常值的方法包括使用統計測量(如四分位距)或視覺化工具(如箱型圖)來檢查資料的分佈情況。

我們可以使用 describe() 函數來查看資料的分佈,從中發現可能的異常值:

# 查看資料的統計描述
print(iris_df.describe())

https://ithelp.ithome.com.tw/upload/images/20240923/201403808xUC78g8WW.png
此時,我們可以觀察數據中的最小值和最大值,從而檢查是否有異常值出現。如果資料的最小值或最大值過於偏離中位數或四分位距,這些值可能就是異常值。

3. 處理異常值

一旦我們發現異常值,可以選擇將其刪除或進行其他處理(如用中位數或平均值替換)。以下是刪除異常值的範例:

# 使用 IQR(四分位距)檢測並刪除異常值
Q1 = iris_df['sepal length (cm)'].quantile(0.25)
Q3 = iris_df['sepal length (cm)'].quantile(0.75)
IQR = Q3 - Q1

# 定義異常值的範圍(通常為 1.5 倍 IQR 之外的值)
lower_bound = Q1 - 1.5 * IQR
upper_bound = Q3 + 1.5 * IQR

# 篩選出非異常值
iris_no_outliers = iris_df[(iris_df['sepal length (cm)'] >= lower_bound) & (iris_df['sepal length (cm)'] <= upper_bound)]
print("刪除異常值後的資料集:")
print(iris_no_outliers.head())

https://ithelp.ithome.com.tw/upload/images/20240923/20140380zSDGCB0BfM.png
這段程式碼會使用四分位距(IQR)來檢測並刪除 sepal length (cm) 中的異常值。這種方法適合資料分佈較為對稱或呈正態分佈的情況。

小結

今天我們學習了如何處理資料中的重複值與異常值,包括:

  1. 使用 duplicated()drop_duplicates() 檢查並刪除重複值。
  2. 使用 IQR 方法來檢測並處理異常值。

處理重複值和異常值有助於提高資料的準確性和分析的可信度。下一步,我們將進一步探討資料的切片和篩選技術。


上一篇
Day 08: 資料處理 - 處理資料中的缺失值 (NAN)
下一篇
Day 10: 基本的 Numpy 運算介紹
系列文
30天Python資料分析挑戰:從基礎到視覺化30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言